import axios from 'axios'
import {Toast} from 'vant'

// 创建一个axios实例
const service = axios.create({
    baseURL: String(import.meta.env.VITE_APP_BASE_URL), // 请求的域名
    timeout: 30000 // 请求超时
});

// 请求拦截器 ---> 请求之前拦截
service.interceptors.request.use(
    config => {
        // 在发送请求之前做一些事情
        return config;
    },
    error => {
        // 请求错误
        return Promise.reject(error);
    }
)

// 响应拦截器 ---> 请求收到应后作出拦截
service.interceptors.response.use(
    /**
     * 如果要获取http信息（例如标题或状态）
     * 请返回响应=>响应
     */

    /**
     * 通过自定义代码确认请求状态
     * 这只是一个例子
     * 您还可以通过HTTP状态代码来判断状态
     */

    response => {
        const res:any = response.data
        // 请求返回成功时
        if (res.code === 200) {
            return res
        } else if (res.code) {    // 请求返回失败时
            Toast(res.msg || res.message || '服务器开了个小差~')
            return Promise.reject(res)
        }else{
            return res
        }
    },
    error => {
        Toast(error.message || '服务器开了个小差~')
        // 响应错误
        return Promise.reject(error)
    }
);

export default service;